package com.expert.miniapp.dto;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.time.LocalDateTime;

/**
 * UserDTO - 用户信息传输对象
 * 用于返回给前端的用户信息
 *
 * @author System
 * @since 2025-01-14
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class UserDTO {

    /**
     * 用户ID
     */
    @JsonProperty("userId")
    private String userId;

    /**
     * 用户名（可外显）
     */
    @JsonProperty("username")
    private String username;

    /**
     * 昵称
     */
    @JsonProperty("nickname")
    private String nickname;

    /**
     * 头像URL
     */
    @JsonProperty("avatarUrl")
    private String avatarUrl;

    /**
     * 微信OpenID
     */
    @JsonProperty("wechatOpenid")
    private String wechatOpenid;

    /**
     * 手机号
     */
    @JsonProperty("phone")
    private String phone;

    /**
     * 邮箱
     */
    @JsonProperty("email")
    private String email;

    /**
     * 组织名称
     */
    @JsonProperty("orgName")
    private String orgName;

    /**
     * 组织规模
     */
    @JsonProperty("orgSize")
    private String orgSize;

    /**
     * 地区城市
     */
    @JsonProperty("regionCity")
    private String regionCity;

    /**
     * 组织角色
     */
    @JsonProperty("orgRole")
    private String orgRole;

    /**
     * 状态
     */
    @JsonProperty("status")
    private String status;

    /**
     * 创建时间
     */
    @JsonProperty("createdAt")
    private LocalDateTime createdAt;

    /**
     * 最后登录时间
     */
    @JsonProperty("lastLoginAt")
    private LocalDateTime lastLoginAt;
}
